home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************\
- * Header Files
- \******************************************************************************/
-
- #include <Desk.h>
- #include <Errors.h>
- #include <Events.h>
- #include <Menus.h>
- #include <Resources.h>
- #include <ToolUtils.h>
- #include <Windows.h>
- #include "CursWindTkl.h"
- #include "MenuTkl.h"
- #include "QuitCmmd.h"
- #include "ShowCursor.h"
- #include "WindowTkl.h"
-
-
- /******************************************************************************\
- * Constant Declarations
- \******************************************************************************/
-
- #define applMenuNum 128 //Menu number of Apple menu
- #define fileMenuNum 129 //Menu number of File menu
- #define editMenuNum 130 //Menu number of Edit menu
-
- #define abotMenuItem 1 //Apple-menu item of About Sharkey command
-
- #define quitMenuItem 1 //File-menu item of Quit command
-
- #define undoMenuItem 1 //Edit-menu item of Undo command
- #define cutMenuItem 3 //Edit-menu item of Cut command
- #define copyMenuItem 4 //Edit-menu item of Copy command
- #define pastMenuItem 5 //Edit-menu item of Paste command
- #define clerMenuItem 6 //Edit-menu item of Clear command
-
-
- /******************************************************************************\
- * Function Declarations
- \******************************************************************************/
-
- void DoApplMenu (short);
- void DoFileMenu (short);
- void DoEditMenu (short);
- void EditMenuDim (short);
-
-
- #pragma segment %A5Init
- /******************************************************************************\
- * StartMenus - Load and install menus
- *
- * StartMenus loads all the menu resources and installs them in the menu bar.
- * Finally, StartMenus draws the menu bar.
- \******************************************************************************/
-
- void
- StartMenus ()
- {
- MenuHandle ApplMenuHnd; //=> Apple MENU resource
- MenuHandle FileMenuHnd; //=> File MENU resource
- MenuHandle EditMenuHnd; //=> Edit MENU resource
-
- ApplMenuHnd = (MenuHandle) null;
- FileMenuHnd = (MenuHandle) null;
- EditMenuHnd = (MenuHandle) null;
- if ((ApplMenuHnd = GetMenu (applMenuNum)) == (MenuHandle) null)
- goto Abort;
- if ((FileMenuHnd = GetMenu (fileMenuNum)) == (MenuHandle) null)
- goto Abort;
- if ((EditMenuHnd = GetMenu (editMenuNum)) == (MenuHandle) null)
- goto Abort;
- AddResMenu (ApplMenuHnd, 'DRVR');
- InsertMenu (ApplMenuHnd, 0);
- InsertMenu (FileMenuHnd, 0);
- InsertMenu (EditMenuHnd, 0);
- DrawMenuBar ();
- return;
-
- Abort:
- if (ApplMenuHnd != (MenuHandle) null)
- ReleaseResource ((Handle) ApplMenuHnd);
- if (FileMenuHnd != (MenuHandle) null)
- ReleaseResource ((Handle) FileMenuHnd);
- gApplErr = appDmgErr;
- return;
- }
-
-
- #pragma segment Main
- /******************************************************************************\
- * DoMenuEvent - Handle menu event
- *
- * DoMenuEvent handles a menu bar click by determining which menu item was chosen
- * and delegating power to the proper command handler. The global flag quitFlag
- * is used.
- \******************************************************************************/
-
- void
- DoMenuEvent (MenuChoice)
- long MenuChoice; //Long result from MenuSelect >>
- {
- short MenuNum; //Number of chosen menu
- short MenuItem; //Number of chosen menu item
-
- MenuNum = (short) (MenuChoice >> 16L);
- MenuItem = (short) MenuChoice;
- switch (MenuNum)
- {
- case applMenuNum:
- DoApplMenu (MenuItem);
- break;
- case fileMenuNum:
- DoFileMenu (MenuItem);
- break;
- case editMenuNum:
- DoEditMenu (MenuItem);
- break;
- default:
- break;
- }
- if (! (gFlags & quitFlag))
- HiliteMenu (0);
- }
-
-
- #pragma segment Main
- /******************************************************************************\
- * DoApplMenu - Handle Apple-menu event
- *
- * DoApplMenu handles the choosing of an Apple-menu item.
- \******************************************************************************/
-
- static void
- DoApplMenu (MenuItem)
- short MenuItem; //Number of chosen menu item >>
- {
- Str255 DAName; //Name of DA
-
- if (MenuItem != abotMenuItem)
- {
- GetItem (GetMHandle (applMenuNum), MenuItem, DAName);
- OpenDeskAcc (DAName);
- }
- }
-
-
- #pragma segment Main
- /******************************************************************************\
- * DoFileMenu - Handle File-menu event
- *
- * DoFileMenu handles the choosing of a file-menu item.
- \******************************************************************************/
-
- static void
- DoFileMenu (MenuItem)
- short MenuItem; //Number of chosen menu item >>
- {
- switch (MenuItem)
- {
- case quitMenuItem:
- DoQuit ();
- break;
- default:
- break;
- }
- }
-
-
- #pragma segment Main
- /******************************************************************************\
- * DoEditMenu - Handle Edit-menu event
- *
- * DoEditMenu handles the choosing of an edit-menu item.
- \******************************************************************************/
-
- static void
- DoEditMenu (MenuItem)
- short MenuItem; //Number of chosen menu item
- {
- SystemEdit (MenuItem - 1);
- }
-
-
- #pragma segment Main
- /******************************************************************************\
- * FixMenuDim - Dim or undim menu items depending on conditions
- *
- * FixMenuDim dims or undims menu items depending upon the current conditions.
- \******************************************************************************/
-
- void
- FixMenuDim ()
- {
- WindowPeek CurrWindow; //-> Currently active window
-
- CurrWindow = (WindowPeek) FrontWindow ();
- if (CurrWindow != (WindowPeek) null)
- {
- if (CurrWindow->windowKind < 0)
- EditMenuDim (true);
- else if (CurrWindow->windowKind == cursWindKind)
- EditMenuDim (false);
- }
- else
- EditMenuDim (false);
- }
-
-
- #pragma segment Main
- /******************************************************************************\
- * EditMenuDim - Dim or undim Edit menu
- *
- * EditMenuDim dims all items in the Edit menu if Enable is false, or enables all
- * Edit menu items if Enable is true.
- \******************************************************************************/
-
- static void
- EditMenuDim (Enable)
- short Enable; //True if enable, false if disable
- {
- MenuHandle EditMenu; //=> Edit menu/
-
- EditMenu = GetMenu (editMenuNum);
- if (Enable)
- {
- EnableItem (EditMenu, undoMenuItem);
- EnableItem (EditMenu, cutMenuItem);
- EnableItem (EditMenu, copyMenuItem);
- EnableItem (EditMenu, pastMenuItem);
- EnableItem (EditMenu, clerMenuItem);
- }
- else
- {
- DisableItem (EditMenu, undoMenuItem);
- DisableItem (EditMenu, cutMenuItem);
- DisableItem (EditMenu, copyMenuItem);
- DisableItem (EditMenu, pastMenuItem);
- DisableItem (EditMenu, clerMenuItem);
- }
- }
-